// 类型判断：
//  1. 基本数据类型: string number boolean   (type)
//  2. 引用数据类型: object array function  (用Object.prototype.shift.call(XXX).slice(8, -1))
//  3. null (===null)

function getType(target) {
    if (target === null) return target + '';
    
    if (typeof target === 'object') {
        return Object.prototype.toString.call(target).slice(8, -1).toLowerCase();
    } else {
        return typeof target;
    };
};